package com.sophossystems.client.asmon.dto;


import java.io.Serializable;

import java.util.Date;

public class FacturaDTO implements Serializable
{
	/**
	 * 
	 */
	private static final long serialVersionUID = 1469914683995873519L;

	/** 
	 * This attribute maps to the column numero in the FACTURA table.
	 */
	protected int numero;

	/** 
	 * This attribute maps to the column idCliente in the FACTURA table.
	 */
	protected int idCliente;

	/** 
	 * This attribute represents whether the primitive attribute idCliente is null.
	 */
	protected boolean idClienteNull = true;

	/** 
	 * This attribute maps to the column concepto in the FACTURA table.
	 */
	protected String concepto;

	/** 
	 * This attribute maps to the column monto in the FACTURA table.
	 */
	protected String monto;

	/** 
	 * This attribute maps to the column fecha in the FACTURA table.
	 */
	protected Date fecha;
	
	protected int requiereFactura;
	
	protected boolean  requiereFacturaNull;
	
	protected String facturarA;

	/**
	 * Method 'Factura'
	 * 
	 */
	public FacturaDTO()
	{
	}

	/**
	 * Method 'getNumero'
	 * 
	 * @return int
	 */
	public int getNumero()
	{
		return numero;
	}

	/**
	 * Method 'setNumero'
	 * 
	 * @param numero
	 */
	public void setNumero(int numero)
	{
		this.numero = numero;
	}

	/**
	 * Method 'getIdCliente'
	 * 
	 * @return int
	 */
	public int getIdCliente()
	{
		return idCliente;
	}

	/**
	 * Method 'setIdCliente'
	 * 
	 * @param idCliente
	 */
	public void setIdCliente(int idCliente)
	{
		this.idCliente = idCliente;
		this.idClienteNull = false;
	}

	/**
	 * Method 'setIdClienteNull'
	 * 
	 * @param value
	 */
	public void setIdClienteNull(boolean value)
	{
		this.idClienteNull = value;
	}

	/**
	 * Method 'isIdClienteNull'
	 * 
	 * @return boolean
	 */
	public boolean isIdClienteNull()
	{
		return idClienteNull;
	}

	/**
	 * Method 'getConcepto'
	 * 
	 * @return String
	 */
	public String getConcepto()
	{
		return concepto;
	}

	/**
	 * Method 'setConcepto'
	 * 
	 * @param concepto
	 */
	public void setConcepto(String concepto)
	{
		this.concepto = concepto;
	}

	/**
	 * Method 'getMonto'
	 * 
	 * @return String
	 */
	public String getMonto()
	{
		return monto;
	}

	/**
	 * Method 'setMonto'
	 * 
	 * @param monto
	 */
	public void setMonto(String monto)
	{
		this.monto = monto;
	}

	/**
	 * Method 'getFecha'
	 * 
	 * @return Date
	 */
	public Date getFecha()
	{
		return fecha;
	}

	/**
	 * Method 'setFecha'
	 * 
	 * @param fecha
	 */
	public void setFecha(Date fecha)
	{
		this.fecha = fecha;
	}

	
	
	/**
	 * @return the requiereFactura
	 */
	public int getRequiereFactura() {
		return requiereFactura;
	}

	/**
	 * @param requiereFactura the requiereFactura to set
	 */
	public void setRequiereFactura(int requiereFactura) {
		this.requiereFactura = requiereFactura;
	}

	/**
	 * @return the requiereFacturaNull
	 */
	public boolean isRequiereFacturaNull() {
		return requiereFacturaNull;
	}

	/**
	 * @param requiereFacturaNull the requiereFacturaNull to set
	 */
	public void setRequiereFacturaNull(boolean requiereFacturaNull) {
		this.requiereFacturaNull = requiereFacturaNull;
	}

	
	/**
	 * @return the facturarA
	 */
	public String getFacturarA() {
		return facturarA;
	}

	/**
	 * @param facturarA the facturarA to set
	 */
	public void setFacturarA(String facturarA) {
		this.facturarA = facturarA;
	}

	/**
	 * Method 'equals'
	 * 
	 * @param _other
	 * @return boolean
	 */
	@Override
	public boolean equals(Object _other)
	{
		if (_other == null) {
			return false;
		}
		
		if (_other == this) {
			return true;
		}
		
		if (!(_other instanceof FacturaDTO)) {
			return false;
		}
		
		final FacturaDTO _cast = (FacturaDTO) _other;
		if (numero != _cast.numero) {
			return false;
		}
		
		if (idCliente != _cast.idCliente) {
			return false;
		}
		
		if (idClienteNull != _cast.idClienteNull) {
			return false;
		}
		
		if (concepto == null ? _cast.concepto != concepto : !concepto.equals( _cast.concepto )) {
			return false;
		}
		
		if (monto == null ? _cast.monto != monto : !monto.equals( _cast.monto )) {
			return false;
		}
		
		if (fecha == null ? _cast.fecha != fecha : !fecha.equals( _cast.fecha )) {
			return false;
		}
		
		if (requiereFactura != _cast.requiereFactura) {
			return false;
		}
		
		if (requiereFacturaNull != _cast.requiereFacturaNull) {
			return false;
		}
		return true;
	}

	/**
	 * Method 'hashCode'
	 * 
	 * @return int
	 */
	@Override
	public int hashCode()
	{
		int _hashCode = 0;
		_hashCode = 29 * _hashCode + numero;
		_hashCode = 29 * _hashCode + idCliente;
		_hashCode = 29 * _hashCode + (idClienteNull ? 1 : 0);
		_hashCode = 29 * _hashCode + requiereFactura;
		_hashCode = 29 * _hashCode + (requiereFacturaNull ? 1 : 0);
		if (concepto != null) {
			_hashCode = 29 * _hashCode + concepto.hashCode();
		}
		
		if (monto != null) {
			_hashCode = 29 * _hashCode + monto.hashCode();
		}
		
		if (fecha != null) {
			_hashCode = 29 * _hashCode + fecha.hashCode();
		}
		if (facturarA != null) {
			_hashCode = 29 * _hashCode + facturarA.hashCode();
		}
		
		return _hashCode;
	}

	/**
	 * Method 'createPk'
	 * 
	 * @return FacturaPk
	 */
	public FacturaPkDTO createPk()
	{
		return new FacturaPkDTO(numero);
	}

	/**
	 * Method 'toString'
	 * 
	 * @return String
	 */
	@Override
	public String toString()
	{
		StringBuffer ret = new StringBuffer();
		ret.append( "com.sophossystems.client.asmon.dto.Factura: " );
		ret.append( "numero=" + numero );
		ret.append( ", idCliente=" + idCliente );
		ret.append( ", concepto=" + concepto );
		ret.append( ", monto=" + monto );
		ret.append( ", fecha=" + fecha );
		ret.append( ", requiereFactura=" + requiereFactura );
		ret.append( ", facturarA=" + facturarA );
		return ret.toString();
	}

}
